package com.tangruojie.bean;

import com.tangruojie.service.UserService;
import org.springframework.beans.factory.FactoryBean;

public class UserServiceFactoryBean implements FactoryBean<UserService> {
    /**
     * ☑️ FactoryBean 是“生成 Bean 的工厂”，不是 Bean 本身。getBean() 返回的是它生产的产品，而不是工厂本身。
     *
     * @return
     * @throws Exception
     */
    @Override
    public UserService getObject() throws Exception {
        // 返回一个动态代理对象（可以换成任何复杂逻辑）
        return new UserService() {
            @Override
            public void sayHello() {
                System.out.println("Hello from proxy UserService!");
            }
        };
    }

    @Override
    public Class<?> getObjectType() {
        return UserService.class;
    }

    @Override
    public boolean isSingleton() {
        return true; // 该代理对象只会创建一个
    }
}
